1. The Field of the Invention
This invention relates generally to systems, methods, and computer program products for providing client access to one or more devices over a network, such as in a storage area network, and more particularly to methods and systems for providing a client with network device access based in part on the accessing client's identity.
2. Background and Relevant Art
Computerized systems are increasingly common, in part because computerized systems automate much of what people previously had to perform manually. Computerized systems do so in part by including many different types of automated devices within a single or minimal number of structures, such as a computer case or a workstation. For example, a computerized system such as a desktop or laptop computer can include a Central Processing Unit (CPU) for processing data, a hard drive, Random Access Memory (RAM), Read Only Memory (ROM), a floppy disk drive, and a Compact Disc Read-Only-Memory (CDROM) drive, or Compact Disc Rewriteable (CDRW) drive, etc. for storing data; and include various hardware interfaces such as Peripheral Device Interconnect (PCI) cards that provide interfaces for external data transmissions.
Each such device is connected typically to a computerized system through another centralized unit (e.g., a “motherboard”) within the computerized system. The device often can be internally connected to a motherboard through, for example, male and female Small Computer System Interface (SCSI) connectors. In some cases, however, a device can be externally connected to the computerized system (e.g., externally connected hard drive or CROM) through male and female Universal Serial Bus (USB) connectors. Some examples of devices that are more commonly externally connected with the computerized system include a printer, a monitor, a keyboard, a modem, and, in more complicated systems, backup media such as large tape storage devices.
As a typical user (or “client”) or organization desires to add functionality to their computerized system(s), the client or organization can discover a few disadvantages to simply adding additional devices to each computer system. One obvious disadvantage is that installing multiple devices on systems can create exponential cost issues, particularly in the case of an organization implementing multiple computerized systems. In addition, installing devices internally allows devices to be centralized, but requires a working knowledge of opening computerized systems and installing the devices, as well as varying degrees of time and effort.
By contrast, using externally-connected devices tends to be much easier than installing devices internally, though other disadvantages can be present. For example, a user can desire to add a large hard drive through a USB connection, but the user has already filled the computer's only two USB ports with a printer and a scanner. Alternatively, an externally-connected device can suffer from performance issues due to slower data transfer and process rates compared to if the device were connected internally. Even still, adding multiple, externally-connected devices to computerized systems can unnecessarily clutter the client's workspace. Accordingly, a client or organization can need to make difficult evaluations to determine which devices to purchase, how many devices to purchase, and how the devices should be connected to computerized systems to accommodate workspace and performance concerns.
Compounding cost disadvantages is the situation where a given user can only need a desired device infrequently, or in the case of a large organization, many of the intended clients can have varying degrees of need for each of the different devices. For one example, an organization can spend a certain amount of money to provide all client systems with 100 gigabyte hard drives, though some clients in the organization can need less than 1 gigabyte of storage space, others can need 5 gigabytes, and yet others can need a full 100 gigabytes (or more) of storage space routinely. As well, some clients in an organization can require access to backup systems, where some of the clients can need the backup systems once a month, and yet others can need the backup systems several times a week. Accordingly, it is a disadvantage in terms at least of cost and efficiency to provide all clients with the same numbers and types of devices, as well as full access to each device's capabilities.
Presently, some current approaches attempt to address the foregoing problems in part by allowing clients to access devices over a Local or Wide Area Network (LAN or WAN). For example, the Internet Small Computer System Interface (iSCSI) allows clients to access SCSI devices over a LAN or WAN by sending SCSI commands over the network. In addition, it is common now for operating systems to incorporate some generic types of network file and printer sharing. While these approaches can provide some cost savings by obviating the need to purchase redundant devices, there remain some disadvantages to these approaches. For example, such approaches tend to treat network clients with a one-size-fits-all access to a given device, such that, as long as the client has access to the network, the client has either complete access to the device, or no access at all, depending on how one administers permissions for the client and/or device.
In addition, present approaches tend to be limited in how they can accommodate newer or multiple connection protocols. For example, some approaches will treat a different connection protocol by allowing the different connection protocol (e.g., a fiber channel connection protocol) through a separate connection port at the network provider, if they can accommodate the different connection protocol at all. Such approaches, however, are less ideal since a network provider may wish to limit certain clients to accessing only certain ports, or the network provider can be limited in the number of new ports the provider can allocate. Accordingly, present approaches do not provide sufficient granularity by which a network provider can provide client access to network devices.
What is needed, therefore, are systems and methods that allow clients to access devices over a network so that a user or an organization is not required to purchase multiple devices. In particular, such systems and methods should be configurable to allow clients varying degrees of access to different types of devices based on a given client's identity. In addition, such systems and methods should be able to accommodate device access for a variety of connection protocols, such that the client device access options can be broadened, or narrowed on a situational basis.